/*
宋朝的女子嫁人时，要考察男子的满意度(满意度=财富值+地位值-婆婆的暴力值）
如果满意度是素数的话，就可以嫁，否则就不答应这门婚事。
Input
第一行是n(1<=n<=50)，表示数据的组数；
接下来是n行，每行3个正整数x,y,z（财富值，地位值，暴力值）；(1<=x,y,z<=1e14)
Output
如果可以同意这门婚事，输出"yes";
否则输出"no";
Sample Input
2
10 2 1
10 2 2
Sample Output
yes
no
*/
#include <bits/stdc++.h>
using namespace std;
#define MAX 10000001 // 10^7+1
int b[MAX + 1];      // 素数标记数组,0为素数，1为非素数
int prime[MAX + 1];  // 素数数组
int num = 0;
void a_prime() //埃氏筛
{
    memset(b, 0, sizeof(b)); // 初始化为0，表示全为素数
    int i,j;
    b[0]=b[1]=1;
    for (i = 2; i < MAX; i++)// 筛选i = 2-MAX 的数
    {
        if(b[i]==0)
        {
           prime[++num]=i;  //第num个数为素数
           for(j=2;j*i<MAX;j++)
           {
               b[j*i]=1; // MAX范围内的素数i的倍数不是素数
           }
        }
    }
}
void x_prime() //线性筛
{
    memset(b, 0, sizeof(b)); // 初始化为0，表示全为素数
    int i,j;
    b[0]=b[1]=1;
    for (i = 2; i < MAX; i++)// 筛选i = 2-MAX 的数
    {
        if(b[i]==0)
        {
           prime[++num]=i;  //第num个数为素数
        }
        for(j=1;j<=num&&i*prime[j]<MAX;j++) // 筛除素数i与比自己小的素数的乘积
        {
            b[i*prime[j]]=1; // MAX范围内的素数i比自己小的素数的乘积不是素数
            if(i%prime[j]==0)
                break;
        }
    }
}
int Su(long long n)
{
    int i,k=sqrt(n);
    if(n==1)
        return 0;
    for(i=1;prime[i]<=k;i++)
    {
        if(n%prime[i]==0) //能被拆分成素数相乘，不是素数
            return 0;
    }
    return 1;
}
int main()
{
    int n,i;
    long long x,y,z;
    x_prime();
    cin >> n;
    for(i=1;i<=n;i++) //n组数
    {
        cin>>x>>y>>z;
        if(Su(x+y-z)==1)
        {
            cout<<"yes"<<endl;
        }
        else
        {
            cout<<"no"<<endl;
        }

    }
    return 0;
}
